<?php
/**
 * <i>@insert</i>组件
 * 
 * 在指定位置插入一个变量的值
 * 
 * 可以使用的参数有：
 * - x-value mixed 变量名
 * 
 * 示例：
 *  模板：
 *  <code>
 *    <span com="@insert" x-value="$string[2,3]|upper"/>
 *  </code>
 *
 * @version $Id: IMintInsertComponent.php 312 2008-04-23 16:29:38Z iwind $
 * @package util.mint.component
 */
class IMintInsertComponent extends IAbstractMintComponent {
	/**
	 * 取得支持的参数列表
	 *
	 * @return array
	 */	
	public function getSupportedParameters() {
		return array("x-value");
	}
	
	/**
	 * 取得HTML属性映射
	 *
	 * @return array
	 * @since 0.0.3
	 */		
	public function getHtmlAttrMapping() {
		return array();
	}	
	
	/**
	 * 处理组件
	 *
	 * @return boolean
	 */	
	public function processComponent() {
		$parameters = $this->getParameters();
		if (!isset($parameters["x-value"])) {
			return false;
		}
		$value = new IMintVariable($parameters["x-value"]);
		if (!$value->isValid()) {
			$this->throwVariableException("x-value");
		}
		$php = "<?php \n";
		$php .= $value->getParseProcess();
		$php .= "echo " . $value->getVarname() . ";\n";
		$php .= "?>";
		$this->replaceNodeText($php);
		return true;
	}
}

?>